package controlador;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import modelo.entidad.Ciudad;
import modelo.entidad.Marca;

import modelo.entidad.Publicacion;
import modelo.entidad.Tipopublicacion;
import modelo.hibernate.dao.DaoCiudad;
import modelo.hibernate.dao.DaoMarcas;

import modelo.hibernate.dao.DaoPublicacion;

import org.zkoss.bind.annotation.Init;
import org.zkoss.zhtml.A;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Combobox;



public class ControladorPortal extends SelectorComposer<Component> {

	private static final long serialVersionUID = 1L;
	
	private DaoMarcas dao = new DaoMarcas();
	private DaoPublicacion  daopub = new DaoPublicacion();
	private DaoCiudad daoCiudad = new DaoCiudad();
	List<Marca> marcas = new ArrayList<>();
	List<Ciudad> ciudades = new ArrayList<>();
	List<String> tipo =new ArrayList<>();
	
	@Wire
	private Combobox cmbMarca;
	@Wire
	private Combobox cmbCiudades;
	@Wire
	private A Buscar;
	
	public ControladorPortal() {
		super();
		// TODO Auto-generated constructor stub
		try {
		
		cargarListadoMarca();
		cargarListadoCiudad();  
		
		
		} catch (Exception e) {		
	// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void setMarcas(List<Marca> marcas) {
		this.marcas = marcas;
	}
	
	public List<String> getMarcas(){
		
		List<String> marcasCarros = new ArrayList<>();
		for(int i=0; i<marcas.size();i++)
		{
			marcasCarros.add(marcas.get(i).getDescripcion());
		}
		return marcasCarros;
	}

	public void cargarListadoMarca(){		
		try{
			marcas=dao.obtenerTodas();
			Set<Marca> marcamodel = new LinkedHashSet<Marca>(marcas);
			Iterator<Marca> it = marcamodel.iterator();
			marcas.clear();
			while(it.hasNext()){
				Marca mc = (Marca) it.next();
				marcas.add(mc);
			}
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}

	public List<String> getCiudades(){
		
		List<String> ciudadesCarros = new ArrayList<>();
		for(int i=0; i<ciudades.size();i++)
		{
			ciudadesCarros.add(ciudades.get(i).getDescripcion());
		}
		return ciudadesCarros;
	}
	public void setCiudades(List<Ciudad> ciudades) {
		this.ciudades = ciudades;
	}
	
	public void cargarListadoCiudad(){		
		try{
			ciudades=daoCiudad.obtenerTodos();
			Set<Ciudad> ciudadmodel = new LinkedHashSet<Ciudad>(ciudades);
			Iterator<Ciudad> it = ciudadmodel.iterator();
			marcas.clear();
			while(it.hasNext()){
				Ciudad mc = (Ciudad) it.next();
				ciudades.add(mc);
			}
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}


}